home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / asmexam.arc / STRING.ASM < prev    next >
Assembly Source File  |  1984-08-09  |  1KB  |  54 lines

  1.     PAGE 55,132
  2. CODE    SEGMENT PARA
  3.     ASSUME CS:CODE,DS:CODE,ES:CODE
  4.  
  5. XWORD   DW 4849H
  6. XWORD1  DW 3132H
  7. XWORD2  DW ?
  8. XBYTE   DB 'A'
  9. XBYTE1  DB 'THIS IS A STRING OF LENGTH 29'
  10. XBYTE2  DB 29 DUP(?)
  11. AXW     DD XWORD
  12. AXW1    DD XWORD1
  13. AXW2    DD XWORD2
  14. AXB     DD XBYTE
  15. AXB1    DD XBYTE1
  16. AXB2    DD XBYTE2
  17.  
  18.     ORG 100H
  19. START:
  20.     LDS   SI,AXB       ; LOAD DS:SI REG WITH ADDRESS OF XBYTE
  21.     LODS  XBYTE        ; LOAD AL FROM [DS::SI]
  22.     LDS   SI,AXW
  23.     LODS  XWORD        ; LOAD AX FROM [DS::SI]
  24.     LDS   SI,AXW1
  25.     LODSB              ; LOAD AL FROM [DS::SI]
  26.  
  27.     LES   DI,AXB2
  28.     MOV   CX,2
  29.     STOS  XBYTE        ; STORE AL AT [ES::DI]
  30.     STOS  XWORD        ; STORE AX AT [ES::DI]
  31.     STOSW              ; STORE AX AT [ES::DI]
  32.     REP  STOSB         ;  STORE AL AT ES:DI FOR CX TIMES
  33.  
  34.     MOVS XBYTE2,XBYTE1 ; MOV BYTE ES:DI <-- DS:SI
  35.     MOVS XWORD2,XWORD1 ; MOV WORD ES:DI <-- DS:SI
  36.     MOVSB              ; MOV BYTE ES:DI <-- DS:SI
  37.  
  38.     MOV CX,3
  39.     REP MOVSW          ; REPEAT MOVSW CX TIMES
  40.  
  41.     SCAS  XBYTE        ; TEST AL WITH THE BYTE AT ES:DI
  42.     REPE  SCASB        ; REPEAT STRING COMPARE WHILE =
  43.     REPNE SCASW        ; REPEAT STRING COMPARE WHILE <>
  44.  
  45.     CMPS XWORD,XWORD1  ; COMPARE WORD AT DS:SI TO ES:DI
  46.     MOV CX,1
  47.     REPE  CMPSW        ; COMPARE WORDS WHILE = AND CX <> 0
  48.     MOV CX,1
  49.     REPNE CMPSB        ; COMPARE BYTES WHILE <> AND CX <> 0
  50.  
  51. CODE    ENDS
  52.     END START
  53.  
  54.